Developers, managers, and operators of computing systems often find it necessary to design and document (collectively, “author”) procedures defining how operational tasks should be performed on the computing system. For example, technology consultants and outsourcing organizations often develop, document, and maintain so-called “best-practice” procedures that describe recommended or optimized methods for operations tasks covering installation, configuration, integration, interconnection, maintenance, upgrading, diagnosis, repair, and decommissioning of computing systems and/or their constituent parts. Likewise, software and hardware products are typically accompanied by end-user documentation (e.g., manuals, users guides) describing how their users and administrators should perform various operations tasks like installation, configuration, and executing common usage scenarios. As an additional example, developers attempting to automate manually-performed operations procedures will typically design and document a baseline procedure before developing an automated implementation.
Operations procedures such as those described above often present significant complexity to the people that carry them out or implement them in automation—the procedures are difficult to understand and implement or execute correctly—resulting in errors and demanding an expensive, highly-skilled workforce. This situation results from the fact that, during development of operations procedures, the design, documentation, and complexity analysis of the procedures are carried out independently, with no immediate feedback to the designer as to the ramifications of design choices. Indeed, the complexity analysis step is often omitted entirely, or performed once in the form of a time-consuming and expensive user study, providing little ability for iterative improvement of the procedure.
This situation motivates the need for a system and methods that integrate complexity analysis with procedure authoring (design and/or documentation).